\begin{center}
	\includegraphics[width=0.3\textwidth]{content/chapter-7/images/1}
\end{center}

本章中，我们将了解缓冲区。前一章中了解了基于指针的USM (Unified Shared Memory, USM)。USM需要我们思考内存存在于哪里，怎么访问。缓冲区是一个高级模型，向开发者隐藏了底层细节。缓冲区只是表示数据，而管理数据在内存中存储和移动的方式就成了运行时的工作。\par

本章介绍了一种管理数据的替代方法。缓冲区和USM之间的选择通常取决于个人偏好和现有代码的风格，应用程序可以自由地混合两种风格来表示应用程序中的不同数据。\par

USM只是内存的不同抽象。USM有指针，而缓冲区是更高级的抽象。缓冲区的抽象级别允许在应用程序的任何设备上可用，包含在运行时数据管理。\par

我们将详细地了解缓冲区的创建和使用。如果不讨论访问器，对缓冲区的讨论就不完整。虽然缓冲区抽象了程序中表示和存储数据的方式，但不能使用缓冲区直接访问数据。需要使用访问器对象告知运行时如何访问数据，并且访问器会与任务图中的数据依赖机制紧密耦合。介绍了使用缓冲区可以做的所有事之后，还将探讨如何在程序中创建和使用访问器。\par

























